#ifndef _SHA1_H
#define _SHA1_H

#include "BigNumber.h"

class DLL_EXPORT Sha1Hash
{
	public:
		Sha1Hash();
		~Sha1Hash();

		void UpdateFinalizeBigNumbers(BigNumber *bn0, ...);
		void UpdateBigNumbers(BigNumber *bn0, ...);

		void UpdateData(const ui8 *dta, int len);
		void UpdateData(const char* str);

		void Initialize();
		void Finalize();

		ui8 *GetDigest(void) { return mDigest; };
		int GetLength(void) { return SHA_DIGEST_LENGTH; };

		BigNumber GetBigNumber();

	private:
		SHA_CTX mC;
		ui8 mDigest[SHA_DIGEST_LENGTH];
};

#endif